package com.ruoyi.compensationManagement.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.compensationManagement.domain.CompensationDeductionAmountSettings;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author Yuan
 * @description
 * @date 2022/10/12 16:10
 */
public class CompensationStaffPayrollVo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 姓名
     */
    @Excel(name = "姓名", needMerge = true)
    private String nickName;

    /**
     * 工资年月
     */
    @JsonFormat(pattern = "yyyy-MM")
    @Excel(name = "工资年月", width = 30, dateFormat = "yyyy-MM", needMerge = true)
    private Date salaryyearmonth;

    /**
     * 岗位名称
     */
    @Excel(name = "岗位名称",width = 20, needMerge = true)
    private String position;

    /**
     * 薪级名称
     */
    @Excel(name = "薪级名称",width = 20, needMerge = true)
    private String salary;

    /**
     * 岗位工资
     */
    @Excel(name = "岗位工资",width = 20, needMerge = true)
    private BigDecimal positionSalary;

    /**
     * 薪级工资
     */
    @Excel(name = "薪级工资",width = 20, needMerge = true)
    private BigDecimal payWages;

    /**
     * 基础性绩效工资
     */
    @Excel(name = "基础性绩效工资",width = 20, needMerge = true)
    private BigDecimal basicPerformancePay;

    /**
     * 奖励性绩效工资
     */
    @Excel(name = "奖励性绩效工资",width = 20, needMerge = true)
    private BigDecimal incentivizedPerformancePay;

    /**
     * 基础性绩效奖
     */
    @Excel(name = "基础性绩效奖",width = 20, needMerge = true)
    private BigDecimal basicPerformanceAward;

    /**
     * 独生子女保健
     */
    @Excel(name = "独生子女保健",width = 20, needMerge = true)
    private BigDecimal oneChildCare;

    /**
     * 住房补贴
     */
    @Excel(name = "住房补贴",width = 20, needMerge = true)
    private BigDecimal housingSubsidies;

    /**
     * 加班工资
     */
    @Excel(name = "加班工资",width = 20, needMerge = true)
    private BigDecimal overtimePay;

    /**
     * 应发工资
     */
    @Excel(name = "应发工资",width = 20, needMerge = true)
    private BigDecimal wagesPayable;

    @Excel(name = "实扣数",width = 20, needMerge = true)
    private BigDecimal actualDeduction;

    @Excel(name = "实发数",width = 20, needMerge = true)
    private BigDecimal actualSalary;

    /***************** 扣款项 ********************/
    @Excel(name = "扣款部分", needMerge = false)
    private List<CompensationDeductionAmountSettings> compensationDeductionAmountSettingsList;

    private String deductionsPart;

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Date getSalaryyearmonth() {
        return salaryyearmonth;
    }

    public void setSalaryyearmonth(Date salaryyearmonth) {
        this.salaryyearmonth = salaryyearmonth;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getSalary() {
        return salary;
    }

    public void setSalary(String salary) {
        this.salary = salary;
    }

    public BigDecimal getPositionSalary() {
        return positionSalary;
    }

    public void setPositionSalary(BigDecimal positionSalary) {
        this.positionSalary = positionSalary;
    }

    public BigDecimal getPayWages() {
        return payWages;
    }

    public void setPayWages(BigDecimal payWages) {
        this.payWages = payWages;
    }

    public BigDecimal getBasicPerformancePay() {
        return basicPerformancePay;
    }

    public void setBasicPerformancePay(BigDecimal basicPerformancePay) {
        this.basicPerformancePay = basicPerformancePay;
    }

    public BigDecimal getIncentivizedPerformancePay() {
        return incentivizedPerformancePay;
    }

    public void setIncentivizedPerformancePay(BigDecimal incentivizedPerformancePay) {
        this.incentivizedPerformancePay = incentivizedPerformancePay;
    }

    public BigDecimal getBasicPerformanceAward() {
        return basicPerformanceAward;
    }

    public void setBasicPerformanceAward(BigDecimal basicPerformanceAward) {
        this.basicPerformanceAward = basicPerformanceAward;
    }

    public BigDecimal getOneChildCare() {
        return oneChildCare;
    }

    public void setOneChildCare(BigDecimal oneChildCare) {
        this.oneChildCare = oneChildCare;
    }

    public BigDecimal getHousingSubsidies() {
        return housingSubsidies;
    }

    public void setHousingSubsidies(BigDecimal housingSubsidies) {
        this.housingSubsidies = housingSubsidies;
    }

    public BigDecimal getOvertimePay() {
        return overtimePay;
    }

    public void setOvertimePay(BigDecimal overtimePay) {
        this.overtimePay = overtimePay;
    }

    public BigDecimal getWagesPayable() {
        return wagesPayable;
    }

    public void setWagesPayable(BigDecimal wagesPayable) {
        this.wagesPayable = wagesPayable;
    }

    public List<CompensationDeductionAmountSettings> getCompensationDeductionAmountSettingsList() {
        return compensationDeductionAmountSettingsList;
    }

    public void setCompensationDeductionAmountSettingsList(List<CompensationDeductionAmountSettings> compensationDeductionAmountSettingsList) {
        this.compensationDeductionAmountSettingsList = compensationDeductionAmountSettingsList;
    }

    public BigDecimal getActualDeduction() {
        return actualDeduction;
    }

    public void setActualDeduction(BigDecimal actualDeduction) {
        this.actualDeduction = actualDeduction;
    }

    public BigDecimal getActualSalary() {
        return actualSalary;
    }

    public void setActualSalary(BigDecimal actualSalary) {
        this.actualSalary = actualSalary;
    }

    public String getDeductionsPart() {
        return deductionsPart;
    }

    public void setDeductionsPart(String deductionsPart) {
        this.deductionsPart = deductionsPart;
    }

    @Override
    public String toString() {
        return "CompensationStaffPayrollVo{" +
                "nickName='" + nickName + '\'' +
                ", salaryyearmonth=" + salaryyearmonth +
                ", position='" + position + '\'' +
                ", salary='" + salary + '\'' +
                ", positionSalary=" + positionSalary +
                ", payWages=" + payWages +
                ", basicPerformancePay=" + basicPerformancePay +
                ", incentivizedPerformancePay=" + incentivizedPerformancePay +
                ", basicPerformanceAward=" + basicPerformanceAward +
                ", oneChildCare=" + oneChildCare +
                ", housingSubsidies=" + housingSubsidies +
                ", overtimePay=" + overtimePay +
                ", wagesPayable=" + wagesPayable +
                ", compensationDeductionAmountSettingsList=" + compensationDeductionAmountSettingsList +
                ", actualDeduction=" + actualDeduction +
                ", actualSalary=" + actualSalary +
                ", deductionsPart=" + deductionsPart +
                '}';
    }
}
